﻿using System.Linq;
using System.Net;
using System.ServiceModel;
using System.ServiceModel.DomainServices.Hosting;
using System.ServiceModel.DomainServices.Server;
using System.Configuration;
using System.Collections.Generic;
using System;
using System.IO;
using System.ServiceModel.Web;
using DTO;
using DAO;
using System.Web.Caching;
using System.Web;
using System.Data;
using System.Text;
namespace Models
{
	[EnableClientAccess()]
	public class WebDomainService : DomainService
	{

        [Query]
        public IQueryable<CFind> getQuery() {
            List<CFind> list = new List<CFind>();
            CFind item = new CFind();
            item.sProc = "";
            item.value = "";
            list.Add(item);
            return list.AsQueryable();
        }
        #region TblBangGia
        // [Query] dung de dang ky TblBangGia khi thuc hien json voi domainservice
        [Query]
        public IQueryable<TblBangGia> getTblBangGiaAsQueryable()
        {
            WebModel _model = new WebModel();
            return _model.TblBangGias.GetAll().AsQueryable();
        }

        //Lay thong tin tat ca du lieu cua TblBangGia
        [Invoke(HasSideEffects = true)]
        public List<TblBangGia> getAllTblBangGias()
        {
            WebModel _model = new WebModel();
            return _model.TblBangGias.GetAll();
        }

        [Invoke(HasSideEffects = true)]
        public TblBangGia insertTblBangGias(TblBangGia item)
        {
            WebModel _model = new WebModel();
            DTO.LogFile.writing(HttpContext.Current.Server.MapPath("~/log"), "ngay.txt", "WebDomainService", "insertTblBangGia", item.Ngay.ToString());
            item.Ngay = DateTime.Now;
            _model.TblBangGias.InsertOnSubmit(ref item);
            return item;
        }
        //Lay thong tin du lieu cua TblBangGia theo id
        [Invoke(HasSideEffects = true)]
        public TblBangGia getItemByIdTblBangGia(TblBangGia item)
        {
            WebModel _model = new WebModel();
            return _model.TblBangGias.GetItemById(item.id);
        }

        [Invoke(HasSideEffects = true)]
        public TblBangGia updateTblBangGias(TblBangGia item)
        {
            WebModel _model = new WebModel();
            _model.TblBangGias.UpdateOnSubmit(item);
            return item;
        }

        [Invoke(HasSideEffects = true)]
        public TblBangGia deleteTblBangGias(TblBangGia item)
        {
            WebModel _model = new WebModel();
            _model.TblBangGias.DeleteOnSubmit(item);
            return item;
        }

        #endregion	
#region TblBpbk
		// [Query] dung de dang ky TblBpbk khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblBpbk> getTblBpbkAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblBpbks.GetAll().AsQueryable();
		}

        //Lay thong tin tat ca du lieu cua TblBpbk sp_FindtblBpbk
		[Invoke(HasSideEffects = true)]
		public List<TblBpbk> getAllTblBpbks(){
		     WebModel _model = new WebModel();
		     return _model.TblBpbks.GetAll();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblBpbk> getFindTblBpbks(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblBpbks.GetFind("sp_FindtblBpbk",item.value);
        }

        [Invoke(HasSideEffects = true)]
        public int getMaTblBpbks()
        {
            WebModel _model = new WebModel();
            List<TblBpbk> list = _model.TblBpbks.GetAll();
            int result = 1;
            if (list.Count > 0) {
                TblBpbk item = (TblBpbk)list[0];
                result = item.MaBill + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblBpbk insertTblBpbks(TblBpbk item)
		{
			WebModel _model = new WebModel();
		    _model.TblBpbks.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblBpbk theo id
		[Invoke(HasSideEffects = true)]
		public TblBpbk getItemByIdTblBpbk(TblBpbk item){
			WebModel _model = new WebModel();
			return _model.TblBpbks.GetItemById(item.MaBill);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblBpbk updateTblBpbks(TblBpbk item)
		{
			WebModel _model = new WebModel();
		    _model.TblBpbks.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblBpbk deleteTblBpbks(TblBpbk item)
		{
			WebModel _model = new WebModel();
		    _model.TblBpbks.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblDonVi
		// [Query] dung de dang ky TblDonVi khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblDonVi> getTblDonViAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblDonVis.GetAll().AsQueryable();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblDonVi> getFindTblDonVis(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblDonVis.GetFind("sp_FindtblDonVi", item.value);
        }
		//Lay thong tin tat ca du lieu cua TblDonVi
		[Invoke(HasSideEffects = true)]
		public List<TblDonVi> getAllTblDonVis(){
		     WebModel _model = new WebModel();
		     return _model.TblDonVis.GetAll();
		}

        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblDonVi()
        {
            WebModel _model = new WebModel();
            List<TblDonVi> list = _model.TblDonVis.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblDonVi item = (TblDonVi)list[0];
                result = item.MaDonVi + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblDonVi insertTblDonVis(TblDonVi item)
		{
			WebModel _model = new WebModel();
		    _model.TblDonVis.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblDonVi theo id
		[Invoke(HasSideEffects = true)]
		public TblDonVi getItemByIdTblDonVi(TblDonVi item){
			WebModel _model = new WebModel();
			return _model.TblDonVis.GetItemById(item.MaDonVi);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblDonVi updateTblDonVis(TblDonVi item)
		{
			WebModel _model = new WebModel();
		    _model.TblDonVis.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblDonVi deleteTblDonVis(TblDonVi item)
		{
			WebModel _model = new WebModel();
		    _model.TblDonVis.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblKhachHang

		// [Query] dung de dang ky TblKhachHang khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblKhachHang> getTblKhachHangAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblKhachHangs.GetAll().AsQueryable();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblKhachHang> getFindTblKhachHangs(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblKhachHangs.GetFind("sp_FindtblKhachHang", item.value);
        }
		//Lay thong tin tat ca du lieu cua TblKhachHang
		[Invoke(HasSideEffects = true)]
		public List<TblKhachHang> getAllTblKhachHangs(){
		     WebModel _model = new WebModel();
		     return _model.TblKhachHangs.GetAll();
		}

        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblKhachHang()
        {
            WebModel _model = new WebModel();
            List<TblKhachHang> list = _model.TblKhachHangs.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblKhachHang item = (TblKhachHang)list[0];
                result = item.MaKhachHang + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblKhachHang insertTblKhachHangs(TblKhachHang item)
		{
			WebModel _model = new WebModel();
		    _model.TblKhachHangs.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblKhachHang theo id
		[Invoke(HasSideEffects = true)]
		public TblKhachHang getItemByIdTblKhachHang(TblKhachHang item){
			WebModel _model = new WebModel();
			return _model.TblKhachHangs.GetItemById(item.MaKhachHang);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblKhachHang updateTblKhachHangs(TblKhachHang item)
		{
			WebModel _model = new WebModel();
		    _model.TblKhachHangs.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblKhachHang deleteTblKhachHangs(TblKhachHang item)
		{
			WebModel _model = new WebModel();
		    _model.TblKhachHangs.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblLoaiBpbk
		// [Query] dung de dang ky TblLoaiBpbk khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblLoaiBpbk> getTblLoaiBpbkAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblLoaiBpbks.GetAll().AsQueryable();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblLoaiBpbk> getFindTblLoaiBpbks(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblLoaiBpbks.GetFind("sp_FindtblLoaiBpbk", item.value);
        }
		//Lay thong tin tat ca du lieu cua TblLoaiBpbk
		[Invoke(HasSideEffects = true)]
		public List<TblLoaiBpbk> getAllTblLoaiBpbks(){
		     WebModel _model = new WebModel();
		     return _model.TblLoaiBpbks.GetAll();
		}

        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblLoaiBpbk()
        {
            WebModel _model = new WebModel();
            List<TblLoaiBpbk> list = _model.TblLoaiBpbks.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblLoaiBpbk item = (TblLoaiBpbk)list[0];
                result = item.MaLoaiBpbk + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblLoaiBpbk insertTblLoaiBpbks(TblLoaiBpbk item)
		{
			WebModel _model = new WebModel();
		    _model.TblLoaiBpbks.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblLoaiBpbk theo id
		[Invoke(HasSideEffects = true)]
		public TblLoaiBpbk getItemByIdTblLoaiBpbk(TblLoaiBpbk item){
			WebModel _model = new WebModel();
			return _model.TblLoaiBpbks.GetItemById(item.MaLoaiBpbk);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblLoaiBpbk updateTblLoaiBpbks(TblLoaiBpbk item)
		{
			WebModel _model = new WebModel();
		    _model.TblLoaiBpbks.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblLoaiBpbk deleteTblLoaiBpbks(TblLoaiBpbk item)
		{
			WebModel _model = new WebModel();
		    _model.TblLoaiBpbks.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblNguoiDung
		// [Query] dung de dang ky TblNguoiDung khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblNguoiDung> getTblNguoiDungAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblNguoiDungs.GetAll().AsQueryable();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblNguoiDung> getFindTblNguoiDungs(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblNguoiDungs.GetFind("sp_FindtblNguoiDung", item.value);
        }
		//Lay thong tin tat ca du lieu cua TblNguoiDung
		[Invoke(HasSideEffects = true)]
		public List<TblNguoiDung> getAllTblNguoiDungs(){
		     WebModel _model = new WebModel();
		     return _model.TblNguoiDungs.GetAll();
		}

        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblNguoiDung()
        {
            WebModel _model = new WebModel();
            List<TblNguoiDung> list = _model.TblNguoiDungs.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblNguoiDung item = (TblNguoiDung)list[0];
                result = item.MaNguoiDung + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblNguoiDung insertTblNguoiDungs(TblNguoiDung item)
		{
			WebModel _model = new WebModel();
		    _model.TblNguoiDungs.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblNguoiDung theo id
		[Invoke(HasSideEffects = true)]
		public TblNguoiDung getItemByIdTblNguoiDung(TblNguoiDung item){
			WebModel _model = new WebModel();
			return _model.TblNguoiDungs.GetItemById(item.MaNguoiDung);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblNguoiDung updateTblNguoiDungs(TblNguoiDung item)
		{
			WebModel _model = new WebModel();
		    _model.TblNguoiDungs.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblNguoiDung deleteTblNguoiDungs(TblNguoiDung item)
		{
			WebModel _model = new WebModel();
		    _model.TblNguoiDungs.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblNhomNguoiDung
		// [Query] dung de dang ky TblNhomNguoiDung khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblNhomNguoiDung> getTblNhomNguoiDungAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblNhomNguoiDungs.GetAll().AsQueryable();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblNhomNguoiDung> getFindTblNhomNguoiDungs(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblNhomNguoiDungs.GetFind("sp_FindtblNhomNguoiDung", item.value);
        }

		//Lay thong tin tat ca du lieu cua TblNhomNguoiDung
		[Invoke(HasSideEffects = true)]
		public List<TblNhomNguoiDung> getAllTblNhomNguoiDungs(){
		     WebModel _model = new WebModel();
		     return _model.TblNhomNguoiDungs.GetAll();
		}
        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblNhomNguoiDung()
        {
            WebModel _model = new WebModel();
            List<TblNhomNguoiDung> list = _model.TblNhomNguoiDungs.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblNhomNguoiDung item = (TblNhomNguoiDung)list[0];
                result = item.MaNhom + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblNhomNguoiDung insertTblNhomNguoiDungs(TblNhomNguoiDung item)
		{
			WebModel _model = new WebModel();
		    _model.TblNhomNguoiDungs.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblNhomNguoiDung theo id
		[Invoke(HasSideEffects = true)]
		public TblNhomNguoiDung getItemByIdTblNhomNguoiDung(TblNhomNguoiDung item){
			WebModel _model = new WebModel();
			return _model.TblNhomNguoiDungs.GetItemById(item.MaNhom);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblNhomNguoiDung updateTblNhomNguoiDungs(TblNhomNguoiDung item)
		{
			WebModel _model = new WebModel();
		    _model.TblNhomNguoiDungs.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblNhomNguoiDung deleteTblNhomNguoiDungs(TblNhomNguoiDung item)
		{
			WebModel _model = new WebModel();
		    _model.TblNhomNguoiDungs.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblTrangThaiBill
		// [Query] dung de dang ky TblTrangThaiBill khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblTrangThaiBill> getTblTrangThaiBillAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblTrangThaiBills.GetAll().AsQueryable();
		}
		
		//Lay thong tin tat ca du lieu cua TblTrangThaiBill
		[Invoke(HasSideEffects = true)]
		public List<TblTrangThaiBill> getAllTblTrangThaiBills(){
		     WebModel _model = new WebModel();
		     return _model.TblTrangThaiBills.GetAll();
		}
        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblTrangThaiBill()
        {
            WebModel _model = new WebModel();
            List<TblTrangThaiBill> list = _model.TblTrangThaiBills.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblTrangThaiBill item = (TblTrangThaiBill)list[0];
                result = item.MaTrangThai + 1;
            }
            return result;
        }

		[Invoke(HasSideEffects = true)]
		public TblTrangThaiBill insertTblTrangThaiBills(TblTrangThaiBill item)
		{
			WebModel _model = new WebModel();
		    _model.TblTrangThaiBills.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblTrangThaiBill theo id
		[Invoke(HasSideEffects = true)]
		public TblTrangThaiBill getItemByIdTblTrangThaiBill(TblTrangThaiBill item){
			WebModel _model = new WebModel();
			return _model.TblTrangThaiBills.GetItemById(item.MaTrangThai);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblTrangThaiBill updateTblTrangThaiBills(TblTrangThaiBill item)
		{
			WebModel _model = new WebModel();
		    _model.TblTrangThaiBills.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblTrangThaiBill deleteTblTrangThaiBills(TblTrangThaiBill item)
		{
			WebModel _model = new WebModel();
		    _model.TblTrangThaiBills.DeleteOnSubmit(item);
		    return item;
		}
		
#endregion
		
		
#region TblTuyenPhat
		// [Query] dung de dang ky TblTuyenPhat khi thuc hien json voi domainservice
		[Query]
		public IQueryable<TblTuyenPhat> getTblTuyenPhatAsQueryable() {
		     WebModel _model = new WebModel();
		     return _model.TblTuyenPhats.GetAll().AsQueryable();
		}

        [Invoke(HasSideEffects = true)]
        public List<TblTuyenPhat> getFindTblTuyenPhats(CFind item)
        {
            WebModel _model = new WebModel();
            return _model.TblTuyenPhats.GetFind("sp_FindtblTuyenPhat", item.value);
        }

		//Lay thong tin tat ca du lieu cua TblTuyenPhat
		[Invoke(HasSideEffects = true)]
		public List<TblTuyenPhat> getAllTblTuyenPhats(){
		     WebModel _model = new WebModel();
		     return _model.TblTuyenPhats.GetAll();
		}
        /// <summary>
        /// lay ma tang dan
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int getMaTblTuyenPhat()
        {
            WebModel _model = new WebModel();
            List<TblTuyenPhat> list = _model.TblTuyenPhats.GetAll();
            int result = 1;
            if (list.Count > 0)
            {
                TblTuyenPhat item = (TblTuyenPhat)list[0];
                result = item.MaTuyenPhat + 1;
            }
            return result;
        }
		[Invoke(HasSideEffects = true)]
		public TblTuyenPhat insertTblTuyenPhats(TblTuyenPhat item)
		{
			WebModel _model = new WebModel();
		    _model.TblTuyenPhats.InsertOnSubmit(ref item);
		    return item;
		}
		//Lay thong tin du lieu cua TblTuyenPhat theo id
		[Invoke(HasSideEffects = true)]
		public TblTuyenPhat getItemByIdTblTuyenPhat(TblTuyenPhat item){
			WebModel _model = new WebModel();
			return _model.TblTuyenPhats.GetItemById(item.MaTuyenPhat);
		}
		
		[Invoke(HasSideEffects = true)]
		public TblTuyenPhat updateTblTuyenPhats(TblTuyenPhat item)
		{
			WebModel _model = new WebModel();
		    _model.TblTuyenPhats.UpdateOnSubmit(item);
		    return item;
		}
		
		[Invoke(HasSideEffects = true)]
		public TblTuyenPhat deleteTblTuyenPhats(TblTuyenPhat item)
		{
			WebModel _model = new WebModel();
		    _model.TblTuyenPhats.DeleteOnSubmit(item);
		    return item;
		}
		

#endregion

        #region "report"
        [Invoke(HasSideEffects = true)]
        public List<TblBpbk> ReportDoanhThu() {
            WebModel _model = new WebModel();
            List<TblBpbk> list = _model.TblBpbks.GetAll();
            List<TblNguoiDung> users = _model.TblNguoiDungs.GetAll();
            foreach (TblBpbk item in list) {
                TblNguoiDung _user = users.Single(p => p.MaNguoiDung == item.MaNguoiDung);
                if (_user != null) {
                    item.TuDonVi = _user.TenDonVi;
                }
            }
            return list;
        }
        #endregion
        #region "get modules"
        //getItemsByModule
        [Invoke(HasSideEffects = true)]
        public List<TblTuyenPhat> getItemsByModule(TblTuyenPhat item)
        {
            WebModel _model = new WebModel();
            return _model.TblTuyenPhats.GetAll();
        }

        [Query]
        public IQueryable<LoginResult> getLoginResults()
        {
            List<LoginResult> list = new List<LoginResult>();
            LoginResult item = new LoginResult();
            item.password = "";
            item.username = "";
            list.Add(item);
            return list.AsQueryable();
        }

        /// <summary>
        /// Thay doi mat khau addmin
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int changePassWordAdmin(LoginResult item)
        {
            int result = 0;
            WebModel _model = new WebModel();
            TblNguoiDung user = _model.TblNguoiDungs.GetAll().Single(p => p.TenNguoiDung.Trim().ToLower() == item.username.Trim().ToLower());
            if (user != null) {
                if (user.Passwd.Trim().ToLower() == item.password.Trim().ToLower())
                {
                    user.Passwd = item.newPass;
                    _model.TblNguoiDungs.UpdateOnSubmit(user);
                    result = 1;
                }                
            }
            return result;
        }
        /// <summary>
        /// Kiem tra mat khau cu
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public int checkPassOld(LoginResult item) {
            int result = 0;
            WebModel _model = new WebModel();
            TblNguoiDung user = _model.TblNguoiDungs.GetAll().Single(p => p.TenNguoiDung.Trim().ToLower() == item.username.Trim().ToLower());
            if (user != null)
            {
                if (user.Passwd.Trim().ToLower() == item.password.Trim().ToLower())
                {
                    result = 1;
                }
            }
            return result;
        }
        [Invoke(HasSideEffects = true)]
        public int logout() {
            int result = 0;
            ManagerSessionCache.RemoveSession(ManagerSessionCache.LOGIN);
            return result;
        }
        /// <summary>
        /// Login
        /// </summary>
        /// <returns></returns>
        [Invoke(HasSideEffects = true)]
        public LoginResult logIn(LoginResult item)
        {
            LoginResult result = new LoginResult();
            result.username = item.username;
            result.password = "";
            result.key = 0;
            TblNguoiDung user = null;
                List<TblNguoiDung> users = this.getAllTblNguoiDungs();
                user = this.getAllTblNguoiDungs().Single(p => p.TenNguoiDung == item.username);
                if (user != null) {                    
                    if (user.Passwd == item.password)
                    {
                        result.password = item.password;
                        result.key = user.MaNguoiDung;
                        ManagerSessionCache.SetSessionLogin(result);
                    }
                    else
                        result.key = -1;
                }                
            
            return result;
        }
        #endregion

    }
}
